﻿using Microsoft.VisualStudio.Debugger.Interop;

namespace Red.Scripts
{
    public interface IPostman
    {
        void SendEngineCreatedEvent();
        void SendProgramCreatedEvent( IDebugProgram2 program );
        void SendProgramDestroyedEvent( IDebugProgram2 program );
        void SendPauseCompleteEvent( IDebugProgram2 program, IDebugThread2 thread );
        void SendStepCompleteEvent( IDebugProgram2 program, IDebugThread2 thread );
        void SendBreakpointHitEvent( IDebugProgram2 program, IDebugThread2 thread, IDebugBoundBreakpoint2 breakpoint );
        void SendBreakpointBoundEvent( IDebugPendingBreakpoint2 pending, IDebugBoundBreakpoint2 bound );
        void SendBreakpointUnboundEvent( IDebugBoundBreakpoint2 bound );
        void SendBreakpointErrorEvent( IDebugProgram2 program, IDebugErrorBreakpoint2 error );
        void SendThreadCreated( IDebugProgram2 program, IDebugThread2 thread );
        void SendThreadDestroyed( IDebugProgram2 program, IDebugThread2 thread );
        void SendExpressionEvaluationCompleted( IDebugExpression2 expression, IDebugProperty2 property, IDebugProgram2 program, IDebugThread2 thread );
    }
}
 